summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJedrzej Nowacki <jedrzej.nowacki@nokia.com>2010-12-07 11:56:42 +0100
committerQt by Nokia <qt-info@nokia.com>2012-03-01 12:03:48 +0100
commitbe32caa7a1e50bc9fd6fb370138c6f64a8fb8763 (patch)
tree9eb119826147b4a19fe5cbf728aa79fe41935812
parent2737342fbe24b27b92c5088aa273c2681b3fc2e2 (diff)
[V8] QtScript/V8: Add new v8 api to check if a value is an error.
New function v8::Value::IsError was created. This API is experimental and added only for the purposes of our research. Change-Id: I8f20d46bd81b18bcd7a7c2f7cfc25775d82a6834 Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
-rw-r--r--src/3rdparty/v8/include/v8.h5
-rw-r--r--src/3rdparty/v8/src/api.cc6
-rw-r--r--src/3rdparty/v8/src/heap.h1
3 files changed, 12 insertions, 0 deletions
diff --git a/src/3rdparty/v8/include/v8.h b/src/3rdparty/v8/include/v8.h
index 229ddbd..d995e54 100644
--- a/src/3rdparty/v8/include/v8.h
+++ b/src/3rdparty/v8/include/v8.h
@@ -967,6 +967,11 @@ class Value : public Data {
*/
V8EXPORT bool IsRegExp() const;
+ /**
+ * Returns true if this value is an Error.
+ */
+ V8EXPORT bool IsError() const;
+
V8EXPORT Local<Boolean> ToBoolean() const;
V8EXPORT Local<Number> ToNumber() const;
V8EXPORT Local<String> ToString() const;
diff --git a/src/3rdparty/v8/src/api.cc b/src/3rdparty/v8/src/api.cc
index d31ff9a..9f42ff9 100644
--- a/src/3rdparty/v8/src/api.cc
+++ b/src/3rdparty/v8/src/api.cc
@@ -2316,6 +2316,12 @@ bool Value::IsRegExp() const {
return obj->IsJSRegExp();
}
+bool Value::IsError() const {
+ if (IsDeadCheck(i::Isolate::Current(), "v8::Value::IsError()")) return false;
+ i::Handle<i::Object> obj = Utils::OpenHandle(this);
+ return obj->HasSpecificClassOf(HEAP->Error_symbol());
+}
+
Local<String> Value::ToString() const {
i::Handle<i::Object> obj = Utils::OpenHandle(this);
diff --git a/src/3rdparty/v8/src/heap.h b/src/3rdparty/v8/src/heap.h
index 5e90964..6166cde 100644
--- a/src/3rdparty/v8/src/heap.h
+++ b/src/3rdparty/v8/src/heap.h
@@ -190,6 +190,7 @@ inline Heap* _inline_get_heap_();
V(string_symbol, "string") \
V(String_symbol, "String") \
V(Date_symbol, "Date") \
+ V(Error_symbol, "Error") \
V(this_symbol, "this") \
V(to_string_symbol, "toString") \
V(char_at_symbol, "CharAt") \